home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 050 / tpstuff2.arc / MOUSE.PAS < prev    next >
Pascal/Delphi Source File  |  1985-04-21  |  2KB  |  53 lines

  1. {       Mousketch        }
  2. {   Copied from an article by Jeff Duntemann published in the October '84 issue
  3.     of PC Tech. Journal                                                       }
  4.  
  5. Program Mousketch;
  6.  
  7. type  RegPack = record
  8.                    AX,BX,CX,DX,BP,SI,DI,DS,ES,FLAGS : Integer;
  9.                 end;
  10.  
  11. VAR  OldX, OldY, X, Y : Integer;
  12.      M1, M2, M3, M4   : Integer;
  13.      RegSet           : RegPack;
  14.  
  15. Procedure Mouse(var m1, m2, m3, m4 : integer);
  16.  
  17. VAR RegSet : RegPack;
  18.  
  19. BEGIN
  20.    WITH RegSet DO
  21.    BEGIN               {Set up AX, BX, CX, and DX for interrupt}
  22.       AX := m1;
  23.       BX := m2;
  24.       CX := m3;
  25.       DX := m4;
  26.    END;
  27.  
  28.    INTR(51,RegSet);     {trip interrupt 51}
  29.    WITH RegSet DO
  30.       BEGIN
  31.          m1 := AX;
  32.          m2 := BX;
  33.          m3 := CX;
  34.          m4 := DX;
  35.       END
  36. END;  {Procedure Mouse}
  37.  
  38. Begin
  39.    HIRES;                                {Choose graphics mode & color}
  40.    HIRESCOLOR(YELLOW);
  41.    M1 := 0;                              {Init. mouse driver}
  42.    mouse(M1, M2, M3, M4);
  43.    M1 := 1;                              {Turn mouse cursor on}
  44.    mouse(M1, M2, M3, M4);
  45.    M1 := 3;  OldX := 0;  OldY := 0;
  46.    WHILE NOT KEYPRESSED DO               {Exit Mousketch when any key pressed}
  47.    BEGIN
  48.       mouse(M1, M2, M3, M4);
  49.       IF M2 <> 0 THEN DRAW(OldX, OldY, M3, M4, 1); {Draw if button pressed}
  50.       OldX := M3;                        {Update old X/Y values}
  51.       OldY := M4;
  52.    END
  53. END.